/*
 * @Author: qiulin 1746365080@qq.com
 * @Date: 2024-11-03 23:00:02
 * @LastEditors: qiulin 1746365080@qq.com
 * @LastEditTime: 2024-11-06 13:46:25
 * @FilePath: /SGSim/DataStructure/Input/Element/CHBDYPData.h
 */
#pragma once
#include <math.h>

#include <set>

#include "DataStructure/Common/Constant.h"
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Input/Element/ElementBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
///< @brief 根据PHBDY条目定义边界条件曲面元素。
struct DECLSPEC CHBDYPData : public ElementBase
{
    SG::DataStructure::Common::I64  m_pId      = 0;         ///< 属性ID
    SG::DataStructure::Common::I64  m_TYPE     = 0;         ///< 表面
    SG::DataStructure::Common::I64  m_IVIEWF   = 0;         ///< 前面的VIEW
    SG::DataStructure::Common::I64  m_IVIEWB   = 0;         ///< 后面的VIEW
    SG::DataStructure::Common::I64  m_g[2]     = { 0, 0 };  ///< 节点G1
    SG::DataStructure::Common::I64  m_GO       = 0;         ///< 节点GO
    SG::DataStructure::Common::I64  m_RADMIDF  = 0;         ///< 前面的RADM
    SG::DataStructure::Common::I64  m_RADMIDB  = 0;         ///< 后面的RADM
    SG::DataStructure::Common::I64  m_DISLIN   = 0;         ///< 如果与线型表面元素一起使用，侧面节点的编号
    SG::DataStructure::Common::I64  m_CE       = 0;         ///< 定义方向向量的坐标系
    SG::DataStructure::Common::Real m_E1       = 0.0;       ///< 方向向量的分量
    SG::DataStructure::Common::Real m_E2       = 0.0;       ///< 方向向量的分量
    SG::DataStructure::Common::Real m_E3       = 0.0;       ///< 方向向量的分量
    SG::DataStructure::Common::Id   m_domainId = 0;         ///<
};

///< @brief 重载==
DECLSPEC bool operator== (const CHBDYPData& val1, const CHBDYPData& val2);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE